code: @Override
      public void removeInstance(long key, T instance) {
      	if (first.value == key && instance == first.element) {
      		removeMin();
      		return;
      	}
      	if (last.value == key && instance == last.element) {
      		removeMax();
      		return;
      	}
  
      	// if both children of root are black, set root to red
      	if ((root.left == null || !root.left.red) && (root.right == null || !root.right.red))
              root.red = true;
  
          root = removeInstance(root, key, instance);
          if (root != null) root.red = false;
      }
docs: Remove the node containing the given key and element. The node MUST exists, else the tree won't be valid anymore.