Eu recomendo o setAutoCommit(false) para permitir rollback’s, pois, por exemplo, se você tiver mais de um statement e estes estiverem em uma mesma transação, você garante a integridade…
Só complementando, se você setar o autocommit pra true, vai ser dado commit a cada statement que você executar sem dar chance de dar rollback. Em poucos casos essa é a melhor opção…
Nesse seu exemplo não vejo diferença.
Transações são interessantes quando estão dentro de um contexto, ou seja, é possível/necessário gravar tudo, ou desfazer tudo!
Neste seu update, se houvesse erro ele não seria gravado, tanto com o AutoCommit (true) quanto com o “.commit()” na mão.
Agora, se houvessem dois comandos, e um deles gerasse erro, o AutoCommit (true) deixaria um persistido no banco, o que pode ferir a integridade dos dados…
Já manipulando na mão (com commits e rollbacks) você poderia desfazer todos os comandos em caso de erro.
Eu já tive problemas de transação com JDBC e Firebird… Não é possível desacoplar a transação da conexão.
Agora parti pro Hibernate, por enquanto estou sendo feliz!