code: public <T> T callInTransaction(final Callable<T> callable) throws SQLException {
  		return callInTransaction(connectionSource, callable);
  	}
docs: Execute the {@link Callable} class inside of a transaction. If the callable returns then the transaction is
  committed. If the callable throws an exception then the transaction is rolled back and a {@link SQLException} is
  thrown by this method.
  
  <p>
  <b> NOTE: </b> If your callable block really doesn't have a return object then use the Void class and return null
  from the call method.
  </p>
  
  <p>
  WARNING: it is up to you to properly synchronize around this method if multiple threads are using a
  connection-source which works gives out a single-connection. The reason why this is necessary is that multiple
  operations are performed on the connection and race-conditions will exist with multiple threads working on the
  same connection.
  </p>
  
  @param callable
  Callable to execute inside of the transaction.
  @return The object returned by the callable.
  @throws SQLException
  If the callable threw an exception then the transaction is rolled back and a SQLException wraps the
  callable exception and is thrown by this method.