Up until system V init, what system used to do was fire a runlevel change (to the special runlevel 0), upstart might be doing this, for backwards compatibility, but it might be firing an event as well, you can watch for scripts in /etc/rc0.d/ and for conf files in /etc/init/ (here are the real upstart config files) and yes, shutdown does unmount every filesystem, otherwise you would need to check for errors the next boot.
By the way the script/config file you're looking for is something like mountall which mounts all when it starts and umounts all when it's called to stop.
further reading material at:
http://upstart.ubuntu.com/wiki/