в общем:
- боевой код бывает разным: один обрабатывает 100 запросов в час, другой - 1000 запросов в минуту/секунду.
- запросы тоже бывают разными, и выполняются по-разному; иногда объединение в один может дать профит, иногда нет.
конкретно: вы апдейтите одну и ту же таблицу (в одном потоке, если я правильно понял), имеет смысл это делать за один запрос. подготовку данных можно раскидать по разным функциям, но запрос оптимальнее делать один. если потом вам надо будет отдельно проапдейтить какое-то поле, ну проапдейтите его, это уже будет другой функционал.
оптимальнее не с точки зрения производительности (частично и с ней), а с точки зрения связанности кода: представьте что вам нужно будет поменять название таблицы с customers , на clients - проще это сделать в одной функции или в нескольких?
преждевременная оптимизация - зло. рефакторинг - неизбежный спутник программиста (если он не "херак, херак - и в продакшен").