Finding implementation of BatchNorm backward

I am confused about which batch_norm_backward code is triggered when cudnn_batch_norm_backward is called. Is the code at https://github.com/pytorch/pytorch/blob/master/aten/src/ATen/native/cudnn/BatchNorm.cpp#L217 triggered or is it batchnorm_double_backward (https://github.com/pytorch/pytorch/blob/51d969e86ac0fad226f4e70889df0d3c6114ae4e/tools/autograd/templates/Functions.cpp#L2289) which is triggered, as defined in autograd derivatives.yaml (https://github.com/pytorch/pytorch/blob/d66c320b10a012575a842f1fd0b60912c1f2e7a2/tools/autograd/derivatives.yaml#L1481)

What is the use of having multiple such definitions?