RowSets provide scrollability and updatability for result sets from databases and drivers that do not support those features natively. There are three main types of RowSets: CachedRowSets cache data in memory for disconnected use, JdbcRowSets are thin wrappers around ResultSets that maintain a connection, and WebRowSets use HTTP to communicate with a servlet for data access. RowSets allow components like GUIs to be notified of data changes through their JavaBeans properties and listeners.