Siguiendo con la serie de SQLite con Python:

https://fragmentosdecodigo.home.blog/2020/12/09/introduccion-a-sqlite-con-python/

https://fragmentosdecodigo.home.blog/2020/12/09/primary-key-con-sqlite-en-python/

https://fragmentosdecodigo.home.blog/2020/12/09/campos-auto-incrementables-en-sqlite-con-python/

Creamos un nuevo archivo llamado sqlite6.py y definimos la conexión BD como se describe a continuación:

#CLAUSULA UNIQUE: Impide que la información de un campo se repita en la BD

import sqlite3
conexion=sqlite3.connect("AdministracionAlumnos3")
cursor = conexion.cursor()
cursor.execute('''
    CREATE TABLE CURSOS (
    id_curso INTEGER PRIMARY KEY AUTOINCREMENT,
    codigo_curso VARCHAR(10) UNIQUE,
    nombre_curso VARCHAR(50),
    cupos_curso INTEGER,
    horas_curso INTEGER)
    '''
)

loscursos=[
    ("CODCUR001","Python básico",50,36),
    ("CODCUR002","Java",150,30),
    ("CODCUR003","C#",250,50),
    ("CODCUR004","Python intermedio",50,50),
    ("CODCUR005","Python avanzado",75,100)
]
cursor.executemany("INSERT INTO CURSOS VALUES (NULL,?,?,?,?)", loscursos)
conexion.commit()
conexion.close()

Al abrirlo en SQLite vemos lo siguiente:

Creamos un segundo archivo llamado sqlite7.py con el código necesario para probar la clausula UNIQUE:

import sqlite3
conexion=sqlite3.connect("AdministracionAlumnos3")
cursor = conexion.cursor()
loscursos=[
    ("CODCUR006","Python básico",50,36),
    ("CODCUR007","Java",150,30),
    ("CODCUR008","C#",250,50),
    ("CODCUR001","Python intermedio",50,50), #debe provocar un error UNIQUE
    ("CODCUR009","Python avanzado",75,100)
]
cursor.executemany("INSERT INTO CURSOS VALUES (NULL,?,?,?,?)", loscursos)
conexion.commit()
conexion.close()

En consola se puede ver el mensaje de error provocado:

A nivel de BD no se actualizaron los datos por este error.