code: @Override
      public CacheElement insert(Object key, Object object)
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              Tr.entry(tc, "insert", new Object[] { key, object });
  
          try
          {
              Bucket bucket = getOrCreateBucketForKey(key); // d739870
  
              Element element;
              synchronized (bucket) {
                  // Insert the new object and pin it
                  element = bucket.insertByKey(key, object);
                  element.pinned++;
              }
  
              synchronized (this) {
                  //ACK! This is going to be a choke point
                  numObjects++;
              }
  
              return element;
  
          } finally {
  
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                  Tr.exit(tc, "insert");
          }
      }
docs: Insert the key/object pair into the cache. It is legal to insert
  multiple objects with the same key, though the other cache operations
  do not differentiate between objects with the same key. The object
  is automatically pinned before the insert operation completes. <p>
  
  @param key the key of the object to insert.
  @param object the object to insert.
  
  <p>
  @see Cache#pin
  @see Cache#unpin
  @see EvictionStrategy
  @see Cache#setEvictionStrategy