Public/Update-AirTableRecord.ps1

function Update-AirTableRecord
{
    param
    (
        [Parameter(Mandatory)]
        [string]$ApiKey,

        [Parameter(Mandatory)]
        [string]$BaseName,

        [Parameter(Mandatory, Position = 0)]
        [string]$TableName,

        [Parameter(Mandatory, Position = 1)]
        [string]$RecordID,

        [Parameter(Position = 2)]
        [hashtable]$Fields,

        [switch]$ClearUnspecifiedFields
    )

    $Method = if ($ClearUnspecifiedFields) { 'Put' } else { 'Patch' }

    Invoke-AirTableApi `
        -ApiKey $ApiKey `
        -BaseName $BaseName `
        -TableName $TableName `
        -Path $RecordID `
        -Method $Method `
        -PayLoad (@{fields = $Fields } | ConvertTo-Json) |
    Convertfrom-AirTableRecord -TableName $TableName
}