Why not create an index on user_id, time? Why do you need a unique reference back to the row? We find that they're often (though certainly not always) kind of meaningless and/or unnecessary for timeseries workloads.
Partitioning on the row_id by making it an ordinal instead of a UUID could work, however I feel I would be missing out on TimescaleDB's advantages for querying based on the `time` filter?
Consider that my main queries are:
* DELETE FROM t WHERE row_id = xyz AND user_id = xyz
* INSERT INTO t (...)
* SELECT FROM t WHERE user_id = xyz AND time > xyz and time < xyz