I have a question regarding UART. Could someone please provide more details on what it means by asynchronous in UART especially in terms of data transmission
Asynchronous transmission means there is no separate clock provided to synchronise timing between transmitter and receiver, and synchronisation is carried within the data stream, by edge transitions for example.
There are some fine semantic distinctions here. A character frame consists of 10 or 11 bits. Each of those bits takes the same amount of time. Over such a short run of bits it is possible to accurately decode the actual meaning even if the clocks in the transmitter and receiver are running at slightly different rates. Between character frames there can be an arbitrary amount of time with no activity. In short it would be more correct to say that serial transmission via UART is bit synchronous, but byte asynchronous. It is also true that UART communications does not require a separate clock.
It should be noted that there are protocols where entire frames with thousands of characters are bot bit and byte synchronous and require the availability of the transmitters' clock signal.