public void put(Object src, Object dest, String mapId) {
        int destId = System.identityHashCode(dest);

        Map<Integer, MapIdField> mappedTo = mappedFields.get(src);
        if (mappedTo == null) {
            mappedTo = new HashMap<>();
            mappedFields.put(src, mappedTo);
        }

        MapIdField destMapIdField = mappedTo.get(destId);
        if (destMapIdField == null) {
            destMapIdField = new MapIdField();
            mappedTo.put(destId, destMapIdField);
        }

        if (!destMapIdField.containsMapId(mapId)) {
            destMapIdField.put(mapId, dest);
            if (hasTransaction()) {
                UndoLog undoLog = this.pendingTransactions.get(txId.get());
                undoLog.track(destMapIdField, mapId);
            }
        }
    }
Checks if there is a transaction active.
@return <code>true</code> if a transaction is active, <code>false</code> otherwise
core/src/main/java/com/github/dozermapper/core/MappedFieldsTracker.java