code: boolean removeEntry(Object entry) {
          if (multiple == null) {
              if (entry.equals(single)) {
                  single = null;
                  return true;
              }
          } else {
              multiple.remove(entry);
              if (single.equals(entry)) {
                  single = multiple.peekLast();
              }
              if (multiple.size() == 1) {
                  multiple = null;
              }
          }
          return false;
      }
docs: This method is used to remove an entry from the AutoBindNode.
  This method is not thread safe and should be externally synchronized
  such that other modifications do not happen concurrently on another
  thread.
  
  @param entry The entry to remove
  @return boolean representing whether the AutoBindNode is empty and
  can be removed