How to do uvm built in bit-bash sequence /read-write on Indirect addressed registers?

I have design environment in which there’s indirect addressed registers say X(address : 32’h200), Y(address : 32’h204), Z(address : 32’h208).
Now, there’re 2 more registers Addr(address : 32’h0), Data(address : 32’h4).

Now these Addr and Data registers can only be accessed through a third-party uvm vip which drives the bus2reg transactions on DUT interface. But X,Y,Z registers can’t be accesss directly through this interface using the vip. When we write some address to Addr register say 32’h204 and value into Data register say 32’hFFFF_FFFF than register Y is updated with value 32’hFFFF_FFFF.

Now i can’t do X.write(status,32’hFFFF_FFFF,UVM_FRONTDOOR) or Y.write(status,32’hFFFF_FFFF,UVM_FRONTDOOR).

I have to Addr.write(status,X.addr,UVM_FRONTDOOR) and then Data.write(status,32’hFFFF_FFFF,UVM_FRONTDOOR).

How can i override the uvm built in write function to serve my intent and even bit-bash sequence easily works on it?