True, the only time the managedConnection is set to null is when the method releaseManagedConnection from JdbcTransaction.java is called. So, when Spring-JPA calls rollback(), it's supposed to call this method in the end:
org.hibernate
TransactionImpl.rollback() --> AbstractTransactionImpl.rollback() --> JdbcTransaction.rollback() --> releaseManagedConnection()
|