Connection#setAutoCommit

注: トランザクションの途中でこのメソッドが呼び出されると、そのトランザクションはコミットされます。

http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/sql/Connection.html#setAutoCommit(boolean)

ちゃんと書かれてた...。ということで、数ヶ月前にハマったアレ↓は、JDBC ドライバのバグですな。
----

Connection conn = dataSource.getConnection();
conn.setAutoCommit(false);
// SQL 文実行
conn.setAutoCommit(true); // ここでコミットされるべき
// SQL 文実行
conn.close();

conn.setAutoCommit(true); で「トランザクション中にはコミットモードを変更できない」ってSQLExceptionを投げるドライバがある。