Yup there are many things it will do.
if file is to be stored in a local system we make a check to see if required space is there,all sorts of conflicts,write-permissions are there and then asynchronously we start saving the file/file(s)/folder/folder(s)...
if the file has to be stored in another device i check for connectivity(via another extension) and do the above things again..

and yes in both cases its strictly asynchronous, and if at any point i get a Low_Ram,Low_Battery notification, it will do a Roll Back of the operation.