Now, when I look at my Arduino, I see the TX led constant ON. When I open my serial monitor in the IDE software, then I see "blahblah" appearing every second (as expected) and then I see the TX led blinking every second.
How is this possible? Only when I open the serial monitor the communication works? What am I missing here...?
The serial communication is working in any case.
The reason why you see different behaivour on the led may be caused by impedances or capacitances.
When you have the led alone, with no monitor, at 115200 baud it's nearly imposible to see the led blinking.
When serial monitor is started it's also nearly imposible but if the pc input impedance falls when receiving you can see the led blinking for a moment as the current through the led is lower.
I think this is the reason for what you are seeing.
If you read the UART specifications you can see that the TX line should be in a HIGH state when no transmitting.
So you can't see the led blinking unless you slow the port to 4800 baud or less.
The TX LED on an Uno is driven by the USB/Serial chip. not by the actual TXD line of the AVR.
I would guess that when USB communication isn't happening because nothing is reading the data, the LED isn't manipulated.