code: public Graph<K, VV, EV> union(Graph<K, VV, EV> graph) {
  		DataSet<Vertex<K, VV>> unionedVertices = graph
  			.getVertices()
  			.union(this.getVertices())
  				.name("Vertices")
  			.distinct()
  				.name("Vertices");
  
  		DataSet<Edge<K, EV>> unionedEdges = graph
  			.getEdges()
  			.union(this.getEdges())
  				.name("Edges");
  
  		return new Graph<>(unionedVertices, unionedEdges, this.context);
  	}
docs: Performs union on the vertices and edges sets of the input graphs
  removing duplicate vertices but maintaining duplicate edges.
  
  @param graph the graph to perform union with
  @return a new graph