"GHOST" sample() function inside uvm_reg_block.svh!

There is an empty sample function for functional coverage in uvm_reg_block.svh and uvm_reg.svh which we overwrite in our testbench environment. Neither I had to call that function for hitting the coverage bins nor i could figure out where it is called after going through the source code. Rather the function was called automatically.
Can anyone please explain how is the function invoked?

In reply to Khan MD Tahmid:

The UVM RAL does not provide specific coverage for the register model. This what you have to specify… But it provides all the mechanisms to deal with functional coverage. the sample method is part of this mechanism and you have to call it when the valid data for the functional coverage are available.

This is the sample function definition of uvm_reg_block.svh
// Function: sample
//
// Functional coverage measurement method
//
// This method is invoked by the block abstraction class
// whenever an address within one of its address map
// is succesfully read or written.
// The specified offset is the offset within the block,
// not an absolute address.
//
// Empty by default, this method may be extended by the
// abstraction class generator to perform the required sampling
// in any provided functional coverage model.
//
protected virtual function void sample(uvm_reg_addr_t offset,
bit is_read,
uvm_reg_map map);
endfunction

I have extended my register block from uvm_reg_block and overwritten the sample function.
But I did not call the sample function but still my covergroups were sampled.
Can you please explain who invoked the sample function?

In reply to Khan MD Tahmid:

Without seeing any code it is impossible to answer your question.