PlatformTransactionManager is an interface, so I would not say that all implementations set AutoCommit = false, however the most common implementation (DataSourceTransactionManager) sets AutoCommit = false. see the code snippet below from the doBegin method:
if (con.getAutoCommit()) { txObject.setMustRestoreAutoCommit(true); if (logger.isDebugEnabled()) { logger.debug("Switching JDBC Connection [" + con + "] to manual commit"); } con.setAutoCommit(false); } txObject.getConnectionHolder().setTransactionActive(true);
Now, as you stated, it makes sense to do this or you wonβt have a rollback segment to activate rollbacks.
source share