Вообщем, все оказалось достаточно просто, когда почитаешь внимательно мануалы.
Делаем массив с максимальным количеством колонок, которые может понадобиться проапдейтить:
str := []string {"name", "lastname"}
А дальше, в зависимости от условия, переприсваеваем в него срез с нужными элементами:
Если нам нужно только поле "name":
str = str[0:1]
И подставляем этот массив в функцию update, с тремя точками, которые обозначают переменное число аргументов:
num, err := o.Update(&device, str...)