validateRecord(newRecord, originalRecord, recordType, fieldTypes);
// Reserve blobs so no other records can use them
reserveBlobs(record.getId(), referencedBlobs);
put.add(RecordCf.DATA.bytes, RecordColumn.PAYLOAD.bytes, 1L, recordEvent.toJsonBytes());
put.add(RecordCf.DATA.bytes, RecordColumn.OCC.bytes, 1L, nextOcc(oldOccBytes));
boolean occSuccess = recordTable.checkAndPut(put.getRow(), RecordCf.DATA.bytes, RecordColumn.OCC.bytes,
oldOccBytes, put);
if (!occSuccess) {
throw new ConcurrentRecordUpdateException(recordId);