public void rollbackTransaction(Integer txId) {
        final UndoLog undoLog = pendingTransactions.get(txId);
        if (undoLog == null) {
            throw new IllegalStateException("No transaction with ID " + txId);
        }

        // rollback nested transactions
        SortedMap<Integer, UndoLog> undoLogs = pendingTransactions.tailMap(txId);
        Iterator<UndoLog> undoLogIterator = undoLogs.values().iterator();
        while (undoLogIterator.hasNext()) {
            UndoLog curUndoLog = undoLogIterator.next();
            curUndoLog.revert();
            undoLogIterator.remove();
        }
    }
Rollback transaction with the given ID. The operations of this transactions as well as those of nested
transactions are reverted.
@param txId - transaction ID as returned by {@link #startTransaction()}
core/src/main/java/com/github/dozermapper/core/MappedFieldsTracker.java