join should have an option to return an error value in the shell's $? if any lines are not matched.
Currently the man page doesn't even mention a return value. So it is not set in stone yet. Currently one must save -v output in a file then use test -s do detect if there were any non-matched lines. And then exit one script with non-zero. Big hassle. join (GNU coreutils) 9.4