That udevadm monitor output is actually what I see too on blkdiscard. I probably misremembered remove/add events.
Here on my system it seems that the original udev rule sets unmap too early, so that it is clobbered back to full. Changing the rule like this fixed it for me:
ACTION=="add|change", ATTRS{idVendor}=="xxxx", ATTRS{idProduct}=="yyyy", SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", ATTR{../../scsi_disk/*/provisioning_mode}="unmap"