code: public boolean replace(K key, V ov, V nv) {
        //  synchronized( this ) {
              if( !remove(key, ov) ) {
                  return false;
              }
              put(key, nv);
              return true;
          //}
      }
docs: Replaces the current value of the specified key with the proposed new value
  only if the current value matches the specified old value.
  @param key the key whose value should be replaced
  @param ov the old value that should match the current value in the cache
  @param nv the new value to put in the cache
  @return true if the value was replaced