class TransactionStateMachine implements StatementProcessor {

    @Override
    public Bookmark commitTransaction() throws KernelException
    {
        before();
        try
        {
            ensureNoPendingTerminationNotice();

            state = state.commitTransaction( ctx, spi );
            return newestBookmark( spi );
        }
        catch ( TransactionFailureException ex )
        {
            state = State.AUTO_COMMIT;
            throw ex;
        }
        finally
        {
            after();
        }
    }

      TransactionStateMachine( TransactionStateMachineSPI spi, AuthenticationResult authenticationResult, Clock clock );

}