Если я правильно понимаю ваш вопрос, я могу предложить вам следующую схему.
Добавьте новое поле «версия» или «отметка времени» в ваш кортеж. И проверьте его перед выполнением операции обновления.
Пример: у меня есть схема {id, value, version} и начальный кортеж {1, 0, 0}.
Получен первый запрос запроса кортеж {1, 1, 0} и пытается выполнить операцию обновления {{'+', 'value', 1}} и «только если версия == 0». Затем вы go в хранилище, чтобы сохранить результат. Перед сохранением вы получаете исходный кортеж и проверяете, что версия равна «0», а затем сохраняете кортеж. Теперь вы обновили кортеж {1, 1, 1}.
Представьте, что у вас есть второй запрос, связанный с обновлением того же кортежа с операцией {{'+', 'value', 2}} и снова с "только если версия == 0". Вы пытаетесь сохранить его, но когда вы получаете кортеж с id = 1, вы получаете {1, 1, 1}. Это не удовлетворяет условию only_if_version == 0 (поскольку текущая версия кортежа равна 1). В этом случае вы возвращаете своему пользователю ошибку.