@Override
  public void setMetadata(FileMetadata metadata, byte type, AtomicDBUpdate update)
      throws DatabaseException {

    assert (metadata instanceof BufferBackedFileMetadata);
    BufferBackedFileMetadata md = (BufferBackedFileMetadata) metadata;

    int index = md.getIndexId();
    if (type == -1)
      for (byte i = 0; i < BufferBackedFileMetadata.NUM_BUFFERS; i++) {
        byte[] valBuf = md.getValueBuffer(i);
        assert (valBuf != null);
        update.addUpdate(
            index,
            index == FILE_ID_INDEX
                ? BabuDBStorageHelper.createFileIdIndexKey(metadata.getId(), i)
                : md.getKeyBuffer(i),
            valBuf);
      }
    else {
      byte[] valBuf = md.getValueBuffer(type);
      assert (valBuf != null);
      update.addUpdate(
          index,
          index == FILE_ID_INDEX
              ? BabuDBStorageHelper.createFileIdIndexKey(metadata.getId(), type)
              : md.getKeyBuffer(type),
          valBuf);
    }
  }