@Override
  public boolean release() {
    if (blob != null) {
      ReferenceCountUtil.safeRelease(blob);
      blob = null;
    }
    if (crcByteBuf != null) {
      ReferenceCountUtil.safeRelease(crcByteBuf);
      crcByteBuf = null;
    }
    if (bufferToSend != null) {
      ReferenceCountUtil.safeRelease(bufferToSend);
      bufferToSend = null;
    }
    return false;
  }
Override release even if the {@link #content()}'s result is not null. When the {@link #prepareBuffer()} is
not invoked, there will be {@link #blob} and {@link #crcByteBuf} created but not returned by {@link #content()},
and we have to release them.
@return
ambry-protocol/src/main/java/com/github/ambry/protocol/PutRequest.java