I think this will only throw subclasses of `HBaseException`, but that information gets lost by `.joinUninterruptibly()`.  Maybe we should just change the `throws` here and add a try-catch to only re-raise `HBaseException` and abort or re-package other kinds of exceptions, which would be unexpected?  Or just return a `Deferred.group` and let the caller do the `.joinUninterruptibly()`?