Most modern database engines are transactional and obey the semantics of the System.Transactions.TransactionScope object. The built-in provider, SQLImageDataProvider, assumes usage of a transactional database engine.
Other repositories, such as the file system, are not transactional, and require code to handle and manage transactional resources. The built in provider, FileImageDataProvider handles and manages the transactional resources.