No exemplo apresentado pelo instrutor, não foi voltado a connection para o estado de autoCommit no final da transação, não seria necessário atribuir ao final setAutoCommit(true), ou devido a conexão ser fechada posteriormente a mesma voltaria ao estado de autoCommit ???
ou o mais certo seria como apresentado abaixo:
try(Connection connection = ConnectionPoolFactory.getConnection()){
connection.setAutoCommit(false);
String sql = "INSERT INTO Produto (Pro_Cod, Pro_Nom) VALUES (?, ?)";
try(PreparedStatement preparedStatement = connection.prepareStatement(sql)){
preparedStatement.setInt(1, 1454);
preparedStatement.setString(2, "Teclado");
preparedStatement.executeUpdate();
connection.commit();
connection.setAutoCommit(true);
}catch (Exception e){
e.printStackTrace();
connection.rollback();
connection.setAutoCommit(true);
}
}