code: EdgeLabel addEdgeLabel(
              String edgeLabelName,
              VertexLabel inVertexLabel,
              Map<String, PropertyType> properties,
              ListOrderedSet<String> identifiers) {
  
          EdgeLabel edgeLabel = EdgeLabel.createEdgeLabel(edgeLabelName, this, inVertexLabel, properties, identifiers);
          if (this.schema.isSqlgSchema()) {
              this.outEdgeLabels.put(this.schema.getName() + "." + edgeLabel.getLabel(), edgeLabel);
              inVertexLabel.inEdgeLabels.put(this.schema.getName() + "." + edgeLabel.getLabel(), edgeLabel);
          } else {
              this.uncommittedOutEdgeLabels.put(this.schema.getName() + "." + edgeLabel.getLabel(), edgeLabel);
              inVertexLabel.uncommittedInEdgeLabels.put(this.schema.getName() + "." + edgeLabel.getLabel(), edgeLabel);
          }
          return edgeLabel;
      }
docs: Called via {@link Schema#ensureEdgeLabelExist(String, VertexLabel, VertexLabel, Map)}
  This is called when the {@link EdgeLabel} does not exist and needs to be created.
  
  @param edgeLabelName The edge's label.
  @param inVertexLabel The edge's in vertex.
  @param properties    The edge's properties.
  @param identifiers   The edge's user defined identifiers.
  @return The new EdgeLabel.