code: @Override
      public void put(Key key, Value value) {
  	if (value == null) {
  	    delete(key);
  	    return;
  	}
  	root = put(root, key, value);
  	root.setParent(null);
  	root.setColor(BLACK);
      }
docs: Inserts the specified key-value pair into the symbol table, overwriting the
  old value with the new value if the symbol table already contains the
  specified key. Deletes the specified key (and its associated value) from this
  symbol table if the specified value is <code>null</code>.
  
  @param key
  the key
  @param value
  the value