> You need something like this in a scriptlet:
> if systemctl is-enabled A; systemctl reenable A; done
>
> This will remove the old links and create the new ones.

Thanks Zbigniew for the idea. It seemed very promising and I tried it. Unfortunately, it still did not help because "reenable" command seems to recreate the links based on the service unit file which is newer and does not reference the dropped dependency. So, the old link to service B was still left around.

The only working solution I have found is to disable service B explicitly in post install scriptlet when it is called during upgrade.

Thanks,
Ravindra