code: func (f *fragment) setBit(rowID, columnID uint64) (changed bool, err 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()
  	}
  
  	// handle mutux field type
  	if f.mutexVector != nil {
  		if err := f.handleMutex(rowID, columnID); err != nil {
  			return changed, errors.Wrap(err, "handling mutex")
  		}
  	}
  
  	return f.unprotectedSetBit(rowID, columnID)
  }
docs: // setBit sets a bit for a given column & row within the fragment.
  // This updates both the on-disk storage and the in-cache bitmap.