public void doInTransaction(TransactionCallback transaction) throws SQLException {
        final Connection innerConnection = getCurrentConnection();
        innerConnection.setAutoCommit(false);
        try {
            transaction.doInTransaction();
        } finally {
            try {
                innerConnection.commit();
            } finally {
                JdbcUtils.closeConnection(this.innerConnection);
                this.innerConnection = null;
            }
        }

    }
for test only
WARNING Not thread safe
agent-module/plugins-test-module/plugins-it-utils-jdbc/src/main/java/com/navercorp/pinpoint/it/plugin/utils/jdbc/template/TransactionDataSource.java