docs: protected<Q> Map<TitanVertex,Q> execute(RelationCategory returnType, ResultConstructor<Q> resultConstructor) {
          Preconditions.checkArgument(!vertices.isEmpty(), "Need to add at least one vertex to query");
          Map<TitanVertex, Q> result = new HashMap<TitanVertex, Q>(vertices.size());
          BaseVertexCentricQuery bq = super.constructQuery(returnType);
          profiler.setAnnotation(QueryProfiler.MULTIQUERY_ANNOTATION,true);
          profiler.setAnnotation(QueryProfiler.NUMVERTICES_ANNOTATION,vertices.size());
          if (!bq.isEmpty()) {
              for (BackendQueryHolder<SliceQuery> sq : bq.getQueries()) {
                  Set<InternalVertex> adjVertices = Sets.newHashSet(vertices);
                  for (InternalVertex v : vertices) {
                      if (isPartitionedVertex(v)) {
                          profiler.setAnnotation(QueryProfiler.PARTITIONED_VERTEX_ANNOTATION,true);
                          adjVertices.remove(v);
                          adjVertices.addAll(allRequiredRepresentatives(v));
                      }
                  }
                  //Overwrite with more accurate size accounting for partitioned vertices
                  profiler.setAnnotation(QueryProfiler.NUMVERTICES_ANNOTATION,adjVertices.size());
                  tx.executeMultiQuery(adjVertices, sq.getBackendQuery(), sq.getProfiler());
              }
              for (InternalVertex v : vertices) {
                  result.put(v, resultConstructor.getResult(v, bq));
              }
          } else {
              for (TitanVertex v : vertices)
                  result.put(v, resultConstructor.emptyResult());
          }
          return result;
      }