public static void registerEdgePropertyChange(final CallbackRegistry<Event> callbackRegistry,
                                                  final Traversal.Admin<Object, Object> traversal,
                                                  final Edge edge,
                                                  final String key,
                                                  final Object value){
        if (hasAnyCallbacks(callbackRegistry)) {
            final EventStrategy eventStrategy = forceGetEventStrategy(traversal);
            final Property<?> p = edge.property(key);
            final Property<Object> oldValue =
                    p.isPresent() ? eventStrategy.detach(edge.property(key)) : null;
            final Event.EdgePropertyChangedEvent vpce = new Event.EdgePropertyChangedEvent(eventStrategy.detach(edge), oldValue, value);
            callbackRegistry.getCallbacks().forEach(c -> c.accept(vpce));
        }
    }
Register an edge property change event with the callback registry.
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/event/EventUtil.java