If you are using `systemd` then use `udisksctl` utility with `power-off` option:
> power-off
>
> Arranges for the drive to be safely removed and powered off. On the OS side this includes ensuring that no process is using the drive, then requesting that in-flight buffers and caches are committed to stable storage.
I would recommend first to unmount all filesystems on that usb. This can be done also with `udisksctl`, so steps would be:
udisksctl unmount -b /dev/sda1
udisksctl power-off -b /dev/sda
* * *
If you are not using `systemd` then old good `udisks` should work:
udisks --unmount /dev/sda1
udisks --detach /dev/sda