def METHOD_NAME(self, areaids):
    """Update the cell areas based on cell station records."""
    areaid_set = set(areaids)
    with self.task.db_session() as session:
        # Fetch and lock existing cellarea rows
        rows = session.execute(
            select([self.area_table.c.areaid])
            .where(self.area_table.c.areaid.in_(areaid_set))
            .with_for_update()
        ).fetchall()
        existing_areas = set(row[0] for row in rows)
        # Update each cellarea row from cell tables
        for areaid in areaid_set:
            area_is_new = decode_cellarea(areaid) not in existing_areas
            self.update_area(session, areaid, area_is_new)