Pessoal, a pergunta não tem muito haver com java, mas acho que é o melhor tópico pra tirar uma dúvida sobre transação:
Se minha aplicação começa uma transação e por algum motivo ela não dá o commit nem o rollback. Motivo esse podendo ser queda do servidor de aplicação, ou perda de comunicação entre o banco e servidor ou ainda um simples timeout, ou até mesmo quando o DBA mata o meu processo porque está bloqueando alguns outros processos. O que acontece? O SGDB dá um rollback automático nas minhas alterações? Ou ele mantem as alterações mesmo que eu não tenha confirmado?