X startup scripts can be setup a million and one different ways
here on debian
~/.xsession is called by the global file /etc/X11/Xsession which is called by /etc/X11/xinit/xinitrc which can also be ~/.xinitrc
while both spellings work .Xsession is better
might not be there by default just like ~/.xserverrc and many others you don't need it till you want to override something.
Xsession is a file used by the display manager and/or xinit and not a good place to put emacs things
but if you want it in your home directory you just copy /etc/X11/Xsession as ~/.Xsession and go from there.
the file you want to put emacs and other apps configurations in is ~/.Xresources
http://xwinman.org/resource.php
the reason its important to use .Xresources rather than other files is Xresources is called by the executable binary xinit itself and read into a database using the binary xrdb.
so ~/.Xsession is not a bash script like all the other x startup files but rather more like a resource file used by an executable.
when you are experimenting with settings read them in with the command
xrdb ~/.Xsession