Does catching an SQLException mean that the transaction was definitely not completed and/or that the invoked method did not execute?

Joe Sam Shirah

Not necessarily, and, unfortunately, there is no generic means of determining current state. As noted in JDBC API Tutorial and Reference, 2nd Ed: Java 2, "The safest course is to call the method rollback when there is any doubt and then to start again."