docs: @Override
      public TitanVertex addVertex(Object... keyValues) {
          ElementHelper.legalPropertyKeyValueArray(keyValues);
          if (ElementHelper.getIdValue(keyValues).isPresent()) throw Vertex.Exceptions.userSuppliedIdsNotSupported();
          Object labelValue = null;
          for (int i = 0; i < keyValues.length; i = i + 2) {
              if (keyValues[i].equals(T.label)) {
                  labelValue = keyValues[i+1];
                  Preconditions.checkArgument(labelValue instanceof VertexLabel || labelValue instanceof String,
                          "Expected a string or VertexLabel as the vertex label argument, but got: %s",labelValue);
                  if (labelValue instanceof String) ElementHelper.validateLabel((String) labelValue);
              }
          }
          VertexLabel label = BaseVertexLabel.DEFAULT_VERTEXLABEL;
          if (labelValue!=null) {
              label = (labelValue instanceof VertexLabel)?(VertexLabel)labelValue:getOrCreateVertexLabel((String) labelValue);
          }
  
          final TitanVertex vertex = addVertex(null,label);
  //        for (int i = 0; i < keyValues.length; i = i + 2) {
  //            if (!keyValues[i].equals(T.id) && !keyValues[i].equals(T.label))
  //                ((StandardTitanTx)this).addPropertyInternal(vertex,getOrCreatePropertyKey((String) keyValues[i]),keyValues[i+1]);
  //        }
          com.thinkaurelius.titan.graphdb.util.ElementHelper.attachProperties(vertex, keyValues);
          return vertex;
      }