code: public int put(Object key, int value)
    {
      if (key == null)
        key = NULL_KEY;
  
      synchronized (this) {
        int hash = key.hashCode() & _mask;
  
        for (Item item = _entries[hash]; item != null; item = item._next) {
          Object testKey = item._key;
  
          if (testKey == key || testKey.equals(key)) {
            int oldValue = item._value;
  
            item._value = value;
  
            return oldValue;
          }
        }
  
        Item item = new Item(key, value);
        item._next = _entries[hash];
  
        _entries[hash] = item;
  
        _size++;
      }
  
      return NULL;
    }
docs: Puts a new value in the property table with the appropriate flags