Identify connected external disks programmatically
Have you considered using diskutil info /dev/disk[n|s{n}] | grep Ejectable which allows you to identify whether the device (or device slice) is ejectable. 

This would need to be expanded upon in a script using awk to work through each disk device that is currently attached to determine whether it can be ejected and then eject it.