LSTM followed by Dense Layer in Keras
I have been able to find an answer in Tensorflow Warrior's answer here.

In Keras, when an LSTM(return_sequences = True) layer is followed by Dense() layer, this is equivalent to LSTM(return_sequences = True) followed by TimeDistributed(Dense()).
When return_sequences is set to False, Dense is applied to the last time step only.
Number of parameters were same even when I set return_sequences = False because even though applied to all time steps, they shared the same parameters, that is after all what TimeDistributed() does.