Check your servlet container's log for any exceptions. In your try catch block add the exception as a cause of the ServletException not just the message. Alternately search through the causes to determine what the root cause of the rollback is.
If you were using TopLink Essentials you could set the PU property "toplink.logging.level" "finer" to log the exceptions as they happen.
--Gordon
[Message sent by forum member 'gyorke' (gyorke)]
http://forums.java.net/jive/thread.jspa?messageID=259946