timestamp Vs timestampz in database postgres

While creating backend of the systems i always store time in UTC that is when client side send any date time, i restrict to only accept UTC date time, the client side convert his local date time into UTC and then send it over the network using API.

I then store that utc date time into the database, i never cared about timezone. Then when the user ask for date time, i give them the UTC time which i stored, and then they convert it back to local time zone, this looks great to me.

My questions are,

  1. Why i need to store time zone in the database ?
  2. what is the real world use case where i need to store time zone as well, instead of just reallying on UTC ?
  3. Any resource i can explore which can explain me in detail when to use which approach ?