Provide a MongoDB specific PlatformTransactionManager implementation.
The MongoTransactionManager should create and bind a ClientSession to the thread. Transactions are started, commited or aborted while MongoTemplate automatically detects existing ClientSessions and operates on them accordingly.
Without the presence of a MongoTransactionManager within the ApplicationContext the template should not participate in any what so ever ongoing transactions. Users have to actively opt in to transaction support. A flag on MongoTemplate should allow to enable transaction support for non native MongoDB transactions.