Задайте автоматично ангажиране на false.
Поставете вашите PreparedStatements в блок за опит. Ангажирайте в края; връщане назад в блока catch.
Така обикновено се прави в голите кости JDBC.
http://docs.oracle.com/javase/tutorial/jdbc /basics/transactions.html
Ако използвате EJB3 или Spring, можете да добавите мениджър на транзакции и да ги посочите декларативно. Това е по-сложно и гъвкаво.