It is necessary if you need a higher resolution than PostgreSQL supports unless you find some extension with a custom type, but using it to save space is rarely worth it because then you make the database harder to query and risk running into the 2038 problem just to save 4 bytes per timestamp.
If you need higher than micro second resolution or if you are working with astronomical timescales. These are not common cases but some people have them.