code: func (cg *Consumergroup) CommitOffset(topic string, partition int32, offset int64) error {
  	node := fmt.Sprintf("%s/consumers/%s/offsets/%s/%d", cg.kz.conf.Chroot, cg.Name, topic, partition)
  	data := []byte(fmt.Sprintf("%d", offset))
  
  	_, stat, err := cg.kz.conn.Get(node)
  	switch err {
  	case zk.ErrNoNode: // Create a new node
  		return cg.kz.create(node, data, false)
  
  	case nil: // Update the existing node
  		_, err := cg.kz.conn.Set(node, data, stat.Version)
  		return err
  
  	default:
  		return err
  	}
  }
docs: // CommitOffset commits an offset to a group/topic/partition