@Override
  public ByteBuffer processBinaryStorageCommand(Object key, byte[] value, long cas, int flags,
      Cache cache, RequestReader request) {
    ByteBuffer response = request.getResponse();
    Region<Object, ValueWrapper> r = getMemcachedRegion(cache);
    ValueWrapper val = ValueWrapper.getWrappedValue(value, flags);
    try {
      Object oldVal = r.putIfAbsent(key, val);
      // set status
      if (oldVal == null) {
        if (getLogger().fineEnabled()) {
          getLogger().fine("added key: " + key);
        }
        if (isQuiet()) {
          return null;
        }
        response.putShort(POSITION_RESPONSE_STATUS, ResponseStatus.NO_ERROR.asShort());
        // set cas
        response.putLong(POSITION_CAS, val.getVersion());
      } else {
        if (getLogger().fineEnabled()) {
          getLogger().fine("key: " + key + " not added as is already exists");
        }
        response.putShort(POSITION_RESPONSE_STATUS, ResponseStatus.KEY_EXISTS.asShort());
      }
    } catch (Exception e) {
      response = handleBinaryException(key, request, response, "add", e);
    }
    return response;
  }
general format of the command is: <command name> <key> <flags> <exptime> <bytes> [noreply]\r\n

"add" means "store this data, but only if the server *doesn't* already hold data for this key".
geode-memcached/src/main/java/org/apache/geode/internal/memcached/commands/AddCommand.java