Are you using a transaction aware resource (i.e. a datasource) for doing the inserts? You can configure a datasource and obtain a connection from that and do your JDBC operations. The datasource will be enrolled in the transaction by the bean and if there is any exception, then the changes will be rolled back.
Yes, I lookup for a Datasource to get Connections. Otherwise the transaction wouldn't roll back in BEAN mode as well.
The question is why rollback works within BEAN mode and not in CONTAINER mode.