actually, if you use lsscsi, the regular output (as shown above) doesn't tell you is it is usb or not. What you see is what happens to be pulled from the drive itself in the 2 fields.
[root@tower20 ~]# lsscsi
[2:0:0:0] disk ATA ST3500630AS 3.AA /dev/sda
[2:0:1:0] disk ATA WDC WD2001FASS-0 05.0 /dev/sdb
[3:0:0:0] cd/dvd TSSTcorp CDW/DVD TS-H493A CD07 /dev/sr0
[4:0:0:0] disk Seagate BlackArmorDAS35 412D /dev/sdc
[5:0:0:0] disk PNY USB 2.0 FD 8192 /dev/sdd
But, if you use lsscsi --transport (or lsscsi -t) then it will tell you if it is USB and even what USB bus and port it is on.
[root@tower20 ~]# lsscsi -t
[2:0:0:0] disk ata: /dev/sda
[2:0:1:0] disk ata: /dev/sdb
[3:0:0:0] cd/dvd ata: /dev/sr0
[4:0:0:0] disk usb: 1-4:1.0 /dev/sdc
[5:0:0:0] disk usb: 1-6:1.0 /dev/sdd
You could read that in and test that third field to see if it is equal to usb