блокировка устанавливается только тогда, когда действительно требуется, а не до того, как это выяснится:
func (c *Customer) UpdateAge(age int) error {
if age < 0 {
return fmt.Errorf("переменная age для customer %v должна быть
положительным числом", c)
}
c.mutex.Lock() Блокировка мьютекса только после того, как ввод был проверен
defer c.mutex.Unlock()
c.age = age
return nil
}