code: public void mutationMayCallWriter() {
      CacheWriter<K, V> _writer = writer();
      if (_writer == null) {
        skipWritingNoWriter();
        return;
      }
      if (remove) {
        try {
          entry.nextProcessingStep(WRITE);
          _writer.delete(key);
        } catch (Throwable t) {
          onWriteFailure(t);
          return;
        }
        onWriteSuccess();
        return;
      }
      if (newValueOrException instanceof ExceptionWrapper) {
        skipWritingForException();
        return;
      }
      entry.nextProcessingStep(WRITE);
      try {
        _writer.write(key, newValueOrException);
      } catch (Throwable t) {
        onWriteFailure(t);
        return;
      }
      onWriteSuccess();
    }
docs: Entry mutation, call writer if needed or skip to {@link #mutationMayStore()}