code: public final T execute()
     {
        boolean txOwner = !TransactionElf.hasTransactionManager() || TransactionElf.beginOrJoinTransaction();
        Connection connection = null;
        try {
           connection = ConnectionProxy.wrapConnection(dataSource.getConnection());
           if (txOwner) {
              // disable autoCommit mode as we are going to handle transaction by ourselves
              connection.setAutoCommit(false);
           }
           return (args == null)
              ? execute(connection)
              : execute(connection, args);
        }
        catch (SQLException e) {
           if (e.getNextException() != null) {
              e = e.getNextException();
           }
           if (txOwner) {
              // set the txOwner to false as we no longer own the transaction and we shouldn't try to commit it later
              txOwner = false;
              rollback(connection);
           }
           throw new RuntimeException(e);
        } catch (Throwable e) {
           if (txOwner) {
              txOwner = false;
              rollback(connection);
           }
           throw e;
        }
        finally {
           try {
              if (txOwner) {
                 commit(connection);
              }
           }
           finally {
              quietClose(connection);
           }
        }
     }
docs: Execute the closure.
  
  @return the template return type of the closure