Another option on Mavericks or later is a stay-open applet using an ASObjC library. The library would contain:
use AppleScript version "2.3.1"
use framework "Foundation"
use framework "AppKit" -- for NSWorkspace
use scripting additions
property theSender : missing value
on watchForNewVolumes:sender
set my theSender to sender -- store in property for later use
set theNSWorkspace to current application's NSWorkspace's sharedWorkspace()
set theNSNotificationCenter to theNSWorkspace's notificationCenter()
theNSNotificationCenter's addObserver:me selector:"volumeWasMounted:" |name|:(current application's NSWorkspaceDidMountNotification) object:(missing value)
end watchForNewVolumes:
on volumeWasMounted:theNSNotification
theSender's doStuff()
end volumeWasMounted: