code: public LinkModel getOrCreate(String description, String href)
      {
          Iterable<Vertex> results = (List<Vertex>)getQuery().traverse(g -> g.has(LinkModel.PROPERTY_DESCRIPTION, description).has(LinkModel.PROPERTY_LINK, href)).getRawTraversal().toList();
          if (!results.iterator().hasNext())
          {
              LinkModel model = create();
              model.setDescription(description);
              model.setLink(href);
              return model;
          }
          return frame(results.iterator().next());
      }
docs: Tries to find a link with the specified description and href. If it cannot, then it will return a new one.