code: func (f *fragment) setRow(row *Row, rowID uint64) (bool, error) {
  	f.mu.Lock()
  	defer f.mu.Unlock()
  	mustClose, err := f.reopen()
  	if err != nil {
  		return false, errors.Wrap(err, "reopening")
  	}
  	if mustClose {
  		defer f.safeClose()
  	}
  	return f.unprotectedSetRow(row, rowID)
  }
docs: // setRow replaces an existing row (specified by rowID) with the given
  // Row. This updates both the on-disk storage and the in-cache bitmap.