There are two type of transactions we can talk about in general (pertaining to this thread).
1) There is the transaction that you can write using SQL which you (the programmer) write yourself.
2) There is the transaction that java handles at a system level which can apply to any operation or series of operations you require to be performed from beginning to end without error (including database operations).
By setting non-transactional-connections to true you will not get the protection from system failure as described in number 2.
I welcome others to chime in on this because I am hardly an authority.
[Message sent by forum member 'allenjsomb' (allenjsomb)]
http://forums.java.net/jive/thread.jspa?messageID=338690