No can do. Less than primo "Quality of Implemenation" that TMW didn't have an optional return value from uisave
Error using uisave
Too many output arguments.
Worth an enhancement request/bug report.
It is an m-file, and is a wrapper around a call to uiputfile however, so one could make a local version of your own that does return the file variable to test for 0 as does uiputfile or modify it to return a flag/logical variable. The dual use of the file name as the logical is also a marginal design by current thinking but was prevalent in the time the original was written. Hence is probably best choice for consistency in keeping with existing functions.
The user can modify the filename in the uisave dialog, so that is another reason it would be best choice to return the filename so can also know if the user changed the default name.
Never used so had to go look at what it actually does. All would take would be to change the existing function definition line from
function uisave(variables, filename)
function [fn,pn,filterindex]=uisave(variables, filename)
which would give the same return values as one gets from uiputfile.