
\documentclass[a4paper,10pt]{article}

\usepackage[verbose,separator=;]{datatool}
\usepackage{csquotes}
\usepackage[english]{babel}
\usepackage[top=2cm,bottom=2cm,left=2.5cm,right=2cm]{geometry}
\usepackage{fontspec}

% numbering of projects
\newcounter{project}
\setcounter{project}{0}
\newcommand{\prepro}{P}
\renewcommand{\theproject}{\prepro\arabic{project}}

% create project database
\newcommand{\tabproj}{projects}
\IfFileExists{projects.csv}{\DTLloaddb[]{\tabproj}{projects.csv}}%
{\DTLnewdb{\tabproj}%
\DTLaddcolumn{\tabproj}{ID}%
\DTLaddcolumn{\tabproj}{project title}%
\DTLaddcolumn{\tabproj}{leaders}%
\DTLnewrow{\tabproj}
\DTLnewdbentry{\tabproj}{ID}{P0}
}

% updating project database when project ID, title or leaders have changed
\newcommand{\projtitle}{\relax}
\newcommand{\projlead}{\relax}
\NewDocumentCommand{\updateProjDB}{ m m m }{%
\xdtlgetrowindex{\myrowidx}{\tabproj}{\dtlcolumnindex{\tabproj}{ID}}{#1}
\ifx\myrowidx\dtlnovalue
Index not found.\\
  \DTLnewrow{\tabproj}
  {\dtlexpandnewvalue
  \DTLnewdbentry{\tabproj}{ID}{#1}
  \DTLnewdbentry{\tabproj}{project title}{#2}
  \DTLnewdbentry{\tabproj}{leaders}{#3}
  }
\else
Changing entry with index: \myrowidx\\
\dtlgetrow{\tabproj}{\myrowidx}%
\dtlreplaceentryincurrentrow{#2}{\dtlcolumnindex{\tabproj}{project title}}
\dtlreplaceentryincurrentrow{#3}{\dtlcolumnindex{\tabproj}{leaders}}
\dtlrecombine
\fi
}

\begin{document}

\DTLdisplaydb{\tabproj}

\refstepcounter{project}\label{author1}
\edef\projcount{\theproject}
\edef\projtitle{Title 1}
\edef\projlead{{author1,author2}}
\updateProjDB{\projcount}{\projtitle}{\projlead}

\DTLdisplaydb{\tabproj}

\refstepcounter{project}\label{author3}
\edef\projcount{\theproject}
\edef\projtitle{Title 2}
\edef\projlead{{author3,author4}}
\updateProjDB{\projcount}{\projtitle}{\projlead}

\DTLdisplaydb{\tabproj}

\refstepcounter{project}\label{author5}
\edef\projcount{\theproject}
\edef\projtitle{Title 3}
\edef\projlead{author5}
\updateProjDB{\projcount}{\projtitle}{\projlead}

\DTLdisplaydb{\tabproj}


\DTLsavedb{\tabproj}{projects.csv}

\end{document} 