code: func (c *Connection) Save(model interface{}, excludeColumns ...string) error {
  	sm := &Model{Value: model}
  	return sm.iterate(func(m *Model) error {
  		id, err := m.fieldByName("ID")
  		if err != nil {
  			return err
  		}
  		if IsZeroOfUnderlyingType(id.Interface()) {
  			return c.Create(m.Value, excludeColumns...)
  		}
  		return c.Update(m.Value, excludeColumns...)
  	})
  }
docs: // Save wraps the Create and Update methods. It executes a Create if no ID is provided with the entry;
  // or issues an Update otherwise.