Провел еще один эксперимент, при втором запуске с параметром action=2, из базы элемент вытаскивается уже со значением UF_RATING_TYPE = 2, не смотря на то, что код меняющий это значение находится уже после того как элемент извлечен из базы и выполняется только если action не равен извлеченному UF_RATING_TYPE. Почему так происходит?