code: @Override
      public final boolean remove(Object key, Object value) {
          long hash, allocIndex;
          Segment<K, V> segment;
          if ((allocIndex = (segment = segment(segmentIndex(hash = keyHashCode(key))))
                  .remove(this, hash, key, value, true)) > 0) {
              segment.eraseAlloc(allocIndex);
              return true;
          }
          return false;
      }
docs: Removes the entry for the specified key only if it is currently mapped to the specified
  value. Values are compared using {@link #valuesEqual(Object, Object)} method.
  
  @param key key with which the specified value is associated
  @param value value expected to be associated with the specified key
  @return {@code true} if the value was removed