The number of parameters seems to be correct and you could simply verify it via:
nb_params = conv.weight.nelement() # + conv.bias.nelement() (you can skip the bias, as it's insignificant compared to the weights)

Since your transposed convolution uses a stride of 2, the kernels will be applied to less patches than the conv layer. However, each kernel is larger, which will increase the number of theoretical flops again.