@Override
    public void commitTransaction() throws SQLException {

        try {
            this.connection.commit();
        } catch (SQLException e) {

            try {
                this.connection.rollback();
            } catch (SQLException e2) {
                throw new DBException("error rolling back transaction", e2);
            }

            throw new SQLException("could not commit transaction - a rollback is performed");
        }

        try {
            this.connection.setAutoCommit(true);
        } catch (SQLException e) {
            throw new DBException("error stopping transaction", e);
        }
    }