Each step in a transaction chain is defined by an AsyncTransactionFunction. It receives
a TransactionContext and the output value of the previous transaction step as its input
parameters. The method should return an ApiFuture that will return the result of this
step.
This method is called when this transaction step is executed. The input value is the result
of the previous step, and this method will only be called if the previous step executed
successfully.
an ApiFuture that will return the result of this step, and that will be the
input of the next transaction step. This method should never return null.
Instead, if the method does not have a return value, the method should return
ApiFutures#immediateFuture(null).