Found the solution to my problem, apparently the command to publish the new state was only mentioned on a “Note” box and not on the available command list in the documentation. For those who have similar issue here is the answer:
Note
If you don’t set a lambda and optimistic is false (default), updates to the select component state will need to be taken care of as part of your set_action using id(my_select).publish_state(x); (in a lambda). Do not use select.set Action here, as this would generate a loop. Also, don’t use id(my_select).state = x as this won’t have the desired effect (e.g. HA won’t update with the change).

Basically instead of using “set_option” you should use “.publish_state(x);” otherwise it will result in a loop.