library_change is the only callback for changing libraries.
IIRC the on device column is populated in the GUI thread on library change, there for you should just be able to do this:
Code:
def library_changed(self):
QTimer.singleShot(0, self.do_work)
def do_work(self):
# the on device column should be populated here.