Но хотелось бы как-то отсортировать это по cash и уже получить rowid .
Не путайте понятия
rowid - фиксированный уникальный идентификатор для записей столбца,
не зависящий от сортировок (но при некоторых условиях может меняться, в зависимости от объявления).
"место юзера в таблице" при разных сортировках будет разным.
Так что все-таки требуется? Выяснить rowid пользователя по id (что само по себе нелепо, т.к. id сам по себе должен быть уникальный, нет смысла по нему искать rowid)? Или же найти относительный номер пользователя в отсортированном списке?
Если второе - тогда есть row_number, в котором указывается сортировка. Так например можно получить место пользователей по голосовой активности
SELECT id, name, cash, row_number() over(order by cash desc) as rownum FROM users
И соответственно найти порядковый номер пользователя при такой сортировке
cursor.execute("SELECT cash, rowid, rownum FROM (SELECT id, name, cash, row_number() over(order by cash desc) as rownum FROM users) WHERE id = ?", (ctx.author.id, )).fetchone()[2]
rowid и rownum соответственно будут разными (1-й - идентификатор в таблице, 2-й - порядковый номер в сортировке). Т.е. для пользователя с макс. количеством cash rownum будет равен 1, а rowid в зависимости от его идентификатора в таблице.