docs: public Object put(int key, Object value) {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.entry(tc, "put");
          }
          if (value == null) {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, "value == null");
              }
              throw new NullPointerException("Missing value");
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
              Tr.debug(tc, "key " + key);
          }
          // check the table
          FastSyncHashBucket bucket = getBucket(key);
          Object retVal = syncGetValueFromBucket(bucket, key, false);
          if (retVal != null) {
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                  Tr.exit(tc, "put: key is already defined in bucket...returning value from bucket and new key value will be discarded.");
              return retVal;
          }
          // new entry
          FastSyncHashEntry e = new FastSyncHashEntry(key, value);
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.exit(tc, "put: put new key and value into bucket");
          }
          return syncPutIntoBucket(bucket, e);
      }