How it works: when rolling a weapon, you have three choices for every active UV slot.
* roll - default. Slot will be fileld with random UV.
* keep - UV in the slot won't be replaced.
* upgrade - UV will be rolled, and if it's UV of the same type, your UV will be upgraded one level. Otherwise, nothing happens.
For example:
You have ASI med on your item, you roll for upgrade and if you get any ASI bonus again, no matter higher or lower than your current one, your ASI med becomes ASI high.
Thus, if you choose to upgrade, you won't lose your current bonus, but you won't get any other (including better ones).
Alternatively, if it seems to be too beneficial to players, upgrade could happen only if you get higher UV of the same family. I find it way too restricting, though.
Allowing UVs to be upgraded that easily would defeat the purpose of Punch.