Would like this question (https://unix.stackexchange.com/questions/354854/how-do-i-create-centos-7-persistent-policy-based-routing-rules) answered for ubuntu using Network Manager, not CentOS.
Netplan documentation suggests this is possible with networkd (https://netplan.io/reference/#routing). However, I'm trying to modify routes for a cellular modem and networkd does not support cellular modems, Network Manager is required (https://netplan.io/reference/#properties-for-device-type-modems%3A).
The reason this is critical is because when an ethernet or wifi connection is made, the metric is lower than the cellular connection. This is good so that outgoing connections use a faster and cheaper connection, however, incoming connections to the cellular modem's IP no longer work. This is because the responding packets are sent out the ethernet or wifi interface and that isp blocks those packets because they don't think you are authorized to send packets with a return address of the cellular modem's IP (since it has no idea about that IP at all). It makes a lot of sense to still be able to accept connections incoming on a cellular modem regardless of whether ethernet or wifi are available because you may want the device to be always accessible from that cellular IP since ethernet and wifi can be transient.