public GraphTraversal<Edge, Edge> mergeE(final Traversal<?, Map<Object, Object>> searchCreate) {
        final GraphTraversalSource clone = this.clone();
        clone.gremlinLang.addStep(GraphTraversal.Symbols.mergeE, searchCreate);
        final GraphTraversal.Admin<Edge, Edge> traversal = new DefaultGraphTraversal<>(clone);

        final MergeEdgeStep step = null == searchCreate ? new MergeEdgeStep(traversal, true,  (Map) null) :
                new MergeEdgeStep(traversal, true, searchCreate.asAdmin());

        return traversal.addStep(step);
    }
Spawns a {@link GraphTraversal} by doing a merge (i.e. upsert) style operation for an {@link Edge} using a
{@code Map} as an argument.

@param searchCreate This {@code Map} can have a key of {@link T} {@link Direction} or a {@code String}.
@since 3.6.0
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalSource.java